The present invention relates to a control system for updating a change bit in a data processing system.
In a data processing system of the virtual storage type, a logical space identified by a logical address is located in an external storage. The logical space is divided into blocks or pages of a predetermined storage information unit, for example, 2048 bytes. In order to execute data processing, a central processing unit rolls the blocks containing data to be processed from the external storage into a main storage in block units. The blocks which are not used with a high frequency are rolled out from the main storage and stored in the external storage of larger size, whereas the blocks which are used with a high frequency are located in the main storage or in a smaller buffer storage.
When a "store" operation is effected to store data into the block or change data in the block in some way during the location of this block in the main storage, the content of the particular block needs to be rolled out to the external storage at the end of a certain time period to update the block in the external storage. In contrast, when a storing of data into the block has not been effected, the content of the block need not be rolled out to the external storage because a correct copy of the block already exists in the external storage. Therefore, change bits (C bits) are set in correspondence with the storage information units (blocks) of the main storage, and when the store operation is performed in connection with a selected unit (block), this is indicated by the change bit. Whether or not the corresponding block needs to be rolled out from the main storage to the external storage is then determined by the indication of the change bit. Such a system has been introduced by C. T. Gibson in "Time-Sharing In The IBM System/360: Model 67" on pages 61-78 of "Proceedings Spring Joint Computer Conference, 1966". The C bit is held in a storage protection unit within a storage control unit, and it is referred to and updated for every access to any storage unit in the system, such as the main storage, an intermediate buffer storage or work storage, a buffer storage or cache, etc.
With enhancement in the operating speed of a data processing system, it is required to correspondingly enhance the speeds of the accesses to a storage and a storage protection unit. To this end, some of the C bits held in a storage control unit are retained as a copy in a fast accessible retention unit within each central processing unit. According to this arrangement, in each central processing unit, when a "store" operation is performed to store data into a buffer storage or cache having a copy of some of the data stored in the main storage, only the C bit which comprises the copy in the retention unit within the central processing unit is updated. The C bit indicates whether or not the content of the corresponding block (page) is to be rolled out to an external storage when the block is expelled from the main storage. It is, accordingly, indispensable that the storing of data into the storage, including the buffer storage, be precisely reflected upon the C bit. To this end for fetching the content of the C bit, therefore, it is generally required to return to the storage protection unit both the C bit in the storage protection unit and the copy C bit in the central processing unit and to thereafter fetch the C bit from the storage protection unit. Further, in a multiprocessor complex wherein the main storage is shared by a plurality of central processing units, when one CPU fetches the C bit, it needs to fetch the C bit in the storage protection unit, the copy C bit in the CPU itself and the copy C bits in the other CPUs. This results in a complicated control arrangement, and forms a factor contributing to degradation in the performance of the system.
In general, the C bit is unitarily handled as one of the bits of a storage protection key totaling seven bits, which include four bits forming the access control bits (ACC bits), a fetch protection bit (F bit) and a reference bit (R bit), as described in the aforementioned literature. The definitions of these bits are disclosed in "IBM System/370 Principles of Operation" (GA22-7000-3, January 1973), pp. 33 and 34.